package com.datastructure.string;

/**
 * @author: 临晖
 * @date: 2023/10/16
 * @description:
 */


/**
 * 左旋转
 */
public class Solution04 {


    /**
     *
     *某公司门禁密码使用动态口令技术。初始密码为字符串 password，密码更新均遵循以下步骤：
     * 设定一个正整数目标值 target
     * 将 password 前 target 个字符按原顺序移动至字符串末尾
     * 请返回更新后的密码字符串。
     *
     * @param password
     * @param target
     * @return
     */
    public static String dynamicPassword(String password, int target) {



        char[] ans = password.toCharArray();
        //整体反转
        rever(ans, 0, ans.length - 1);
        //局部反转
        rever(ans, 0, ans.length - target - 1);
        //局部反转
        rever(ans, ans.length - target - 1, ans.length - 1);

        return new String(ans);

    }


    public static void rever(char[] ans, int m, int n) {
        while (m < n) {
            char temp = ans[m];
            ans[m] = ans[n];
            ans[n] = temp;
            m++;
            n--;
        }
    }
}
